// 英文、数字数组排序
function quickSort<T>(arr: Array<T>): T[] {
  if (arr.length < 2) {
    return arr
  }

  var left: Array<T> = []
  var right: Array<T> = []
  var mid = arr.splice(Math.floor(arr.length / 2), 1)[0]
  console.log('mid:', mid)
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] < mid) {
      left.push(arr[i])
    } else {
      right.push(arr[i])
    }
  }
  return quickSort(left).concat(mid, quickSort(right))
}
// 判断数组中是否有中文元素
export function isChinese<T>(arr: Array<T>): boolean {
  var pattern1 = /[\u4e00-\u9fa5]+/g
  return arr.some(item => {
    return pattern1.test(item as any)
  })
}

//   中文排序
export function sortChinese<T>(arr: Array<T>): T[] {
  //Array<T>=T[]
  return arr.sort(function (firstnum, secondnum) {
    return (firstnum as any).localeCompare(secondnum, 'zh-CN')
  })
}
//// (2). 字符串自排序
export function strSelfSort(str: string, count: number = 5): string {
  // (1) 字符串拆分成数组
  let strArray = str.split('')
  // (2) 数组进行使用快速排序算法来排序
  let strSortArray = quickSort(strArray)
  // (3) 重新把排好序的数组连接成一个字符串返回
  let strResult = strSortArray.join('')
  return strResult.length > 10 ? strResult.substr(0, count) + '...' : strResult
}
